# coding:utf-8
"""
    Author: haojuetrace
    Time: 2023-09-17
    此脚本需要配合obsidian软件的wordpress插件一起使用，
    此脚本用于自动更新上传文章，不会对新文章进行上传，需要手动使用obsidian软件进行上传

    *****markdown文档元数据格式**********
    profileName: blog     此参数由obsidian软件自动生成，此参数忽略，无需修改
    postId: '833'    #文章ID    此参数由obsidian软件自动生成
    post_password: 'haojuetrace'   #文章密码，可无
    categories:    #文章分类ID     此参数由obsidian软件自动生成
      - 171
    tags:     #文章标签
      - shell
"""
from md5 import md5_list_init, check_md5
from wordpress_xmlrpc import Client, WordPressPost
from upload import update_post_content, wp_xmlrpc
import time


def main(folder_path, client):
    md5_req = check_md5(folder_path, md5_list_init())
    while True:
        # 调用函数计算文件夹的MD5值
        md5_req = check_md5(folder_path, md5_req['file_list'])
        if len(md5_req['update_list']) != 0:
            for update_file in md5_req['update_list']:
                post = WordPressPost()
                if not update_post_content(post, update_file, client):
                    print(f"{update_file} 文章更新失败")
                else:
                    print(f"{update_file} 文章更新成功")
                time.sleep(3)
        print("运行")
        time.sleep(10)


if __name__ == '__main__':
    folder_path = "D:\桌面\exam"   #需要监控文件夹的路径
    # 定义一个客户端
    domain = "https://exam.com"  # 域名
    username = "admin"  # 用户名
    password = "123456"  # 用户密码
    client = wp_xmlrpc(domain, username, password)
    main(folder_path, client)
